public class Main {
    public static void main(String args[]) {
        // 目标插入值
        int num = 23;
        // 原始有序数组（升序）
        int[] arr = {10, 12, 45, 90};
        // 记录插入位置（初始化为-1表示未找到合适位置）
        int index = -1;

        // 查找第一个大于等于num的元素位置
        for (int i = 0; i < arr.length; i++) {
            if (num <= arr[i]) {
                index = i;
                break; // 找到后立即退出循环
            }
        }

        if (index == -1) {
            System.out.println("没有找到大于等于num的元素");
        } else {
            System.out.println("插入位置下标为: " + index);
            
            // 创建长度+1的新数组用于插入元素
            int[] arr1 = new int[arr.length + 1];
            
            // 复制元素到新数组：
            // 1. 插入位置前的元素保持原序
            // 2. 插入位置放置目标值num
            // 3. 插入位置后的元素后移一位
            //i为arr[i]中i
            for (int i = 0; i < arr1.length; i++) {
                if (i < index) {
                    arr1[i] = arr[i]; // 复制原数组[0,index-1]的元素
                } else if (i == index) {
                    arr1[i] = num; // 插入目标值
                } else {
                    arr1[i] = arr[i - 1]; // 复制原数组[index,length-1]的元素（后移一位）
                }
            }
        另一种方法  /*   for (int i = 0,j = 0; i < arr1.length; i++) {
                if(i != index){
                    arr1[i] = arr[j];
                    j++;
                } else {
                    arr1[i] = num;
                    System.out.println("你已经插入了");
                }
            }
            for (int i = 0; i < arr1.length; i++) {
                System.out.print(arr1[i] + "\t");
            }
            */

            // 输出插入后的新数组
            System.out.print("插入后的新数组: ");
            for (int i = 0; i < arr1.length; i++) {
                System.out.print(arr1[i] + "\t");
            }
        }
    }
}